package com.csu.service;

import cn.dev33.satoken.stp.SaTokenInfo;
import cn.dev33.satoken.util.SaResult;
import com.csu.common.CommonResponse;
import com.csu.entity.Audit;
import com.csu.entity.Classes;
import com.csu.entity.Subject;
import com.csu.entity.User;
import com.csu.vo.*;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

public interface UserService {
    //登录
    CommonResponse<Object> login(String accountName, String password);
    //获取与当前用户同班的学生列表
    List<ClassMemberVo> getClassMember(int classId);

    //查找class_id为一定值的所有学生
    CommonResponse<List<UserVo>> getStudents(int classId) throws JsonProcessingException;

    //获取班级列表
    CommonResponse<List<ClassesRespVO>> getClasses() throws JsonProcessingException;

    //role_id:学生（3），家长（2），老师（1），管理员（0）
    //注册：家长，老师放审核表；学生，管理员放user表
    CommonResponse<Object> register(int classId, String password, int roleId, String accountName, int studentId, int subjectId);

    //改用户名
    CommonResponse<Object> changeUsername(String name, int id);

    //改密码
    CommonResponse<Object> changePassword(String password, int id);

    /**
     * 获取待审核的家长列表
     */
    CommonResponse<List<AuditVo>> getAuditParents(int id);

    /**
     * 获取待审核的老师列表
     */
    CommonResponse<List<AuditVo>> getAuditTeachers();

    /**
     * 审核不通过，删除第audit_id条审核信息
     */
    CommonResponse<Object> deleteAudit(int id);

    /**
     * 第id条信息审核通过，添加用户信息到user,PS等。
     */
    CommonResponse<Object> passAudit(int auditId);

    /**
     * 获取学科列表
     */
    CommonResponse<List<Subject>> getSubjects(int classId);
    /**
     * 通过ID获取学生名字
     */
    String getUsernameByUserId(int userId);

    /**
     * 获取孩子名字
     */
    CommonResponse<List<StudentRespVO>> getChildren(int userId);
    /**
     * 获取身份
     */
    Integer getRole(int userId);

}
